package com.banyiyi.simple.pattern.strategy;

/**
 * @ClassName BehaviorContext
 * @Description TODO
 * @Author yangwm
 * @Date 2023/2/17 10:21
 * @Version 1.0
 */

/**
 * 策略模式核心
 *
 * 我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象
 */
public class BehaviorContext {
    // 获取对象
    private Penguin penguin;

    // 构造器传入对象
    public BehaviorContext(Penguin penguin){
        this.penguin = penguin;
    }

    // 动态更改对象
    public void setPenguin(Penguin penguin){
        this.penguin = penguin;
    }

    // 对象方法执行步骤
    public void everyday(){
        penguin.eat();
        penguin.sleep();
        penguin.play();
    }
}
